/**
 * @param {number} n - a positive integer
 * @return {number} - a positive integer
 */
export var reverseBits = function (n) {
  let res = 0
  for (let i = 0; i < 32 && n > 0; i++) {
    // 每次把n的最后一件位取出来，然后把它放到res的最前面
    res = ((n & 1) << (31 - i)) | res
    n = n >>> 1
  }
  return res >>> 0
}

/**
 * @param {number} n - a positive integer
 * @return {number} - a positive integer
 */
export var reverseBits2 = function (n) {
  return parseInt(n.toString(2).padStart(32, '0').split('').reverse().join(''), 2)
}
